---@diagnostic disable: cast-local-type
--[[
    @Author       : GGELUA
    @Date         : 2022-02-27 16:49:59
Last Modified by: GGELUA
Last Modified time: 2023-05-25 20:29:42
--]]
local 战斗动画 = class('战斗动画')
local 动作 = { "待战", "跑去", "防御", "攻击", "攻击2", "挨打", "返回", "死亡", "施法" }
local action_type = { 攻击 = 1, 攻击2 = 2, 死亡 = 3, 防御 = 4, 待战 = 6, 施法 = 7, 跑去 = 8, 返回 = 8, 挨打 = 9 }
local action_types = { 攻击 = 1, 攻击2 = 1, 死亡 = 99, 防御 = 3, 待战 = 3, 施法 = 2, 跑去 = 4, 返回 = 4, 挨打 = 3 }
local _施法表={名称1=0xABABC036,名称2=0xABABC001,名称3=0xABABC002,名称4=0xABABC003,名称5=0xABABC004,名称6=0xABABC005,名称7=0xABABC014,名称8=0xABABC015,名称9=0xABABC016,名称10=0xABABC017,名称11=0xABABC018,名称12=0xABABC021
		,名称13=0xABABC022,名称14=0xABABC025,名称15=0xABABC026,名称16=0xABABC027,名称17=0xABABC028,名称18=0xABABC029,名称19=0xABABC030,名称20=0xABABC035}

function 战斗动画:初始化(当前)
	self.当前 = 当前
end

function 战斗动画:创建动画(模型, 类型, 染色方案, 染色组, 变异, 武器, 变身, 饰品, 炫彩, 炫彩组, 锦衣,副武器)
	self.动画 = {}
	self.身体 = nil
	self.动作特效 = {}
	self.武器 = nil
	self.武器类型 = 武器
	self.副武器=nil
	self.副武器类型= 副武器
	self.怪物饰品 = nil
	self.py = { 0, 0 }
	self.cp = 2
	self.染色方案 = 染色方案
	self.染色组 = 染色组
	self.炫彩 = 炫彩
	self.炫彩组 = 炫彩组
	self.行为 = "待战"
	self.状态行为 = "待战"
	self.动画 = {}
	self.动作特效 = {}
	local 模型 = 模型
	if 变身 ~= nil then
		类型 = 1
		模型 = 变身
	end
	local 施法特效1
	if 武器 and 武器.施法特效 and 武器.施法特效.名称 then
		施法特效1=武器.施法特效.名称
	end
	local djs
	local zl = 0
	if 类型 == "角色" or 类型 == "系统角色" then
		local lssj
		local 允许武器 = true
		if 锦衣 and 锦衣[2] then
			local 锦衣名称 = 锦衣[2].名称
			if type(锦衣[2]) == "string" then
				锦衣名称 = 锦衣[2]
			end
			允许武器 = false
			lssj =取祥瑞模型(模型,锦衣名称,1)			
		end
		if ( not lssj or ( lssj and not lssj[1])) and 锦衣 and 锦衣[1] and 锦衣[1].名称 then
			local 锦衣名称 = 锦衣[1].名称
			local 武器类型 = nil
			if 武器 ~= nil then 武器类型 = 多开数据[多开数据.当前].__主控:取武器子类(武器.子类) end
			lssj = 取战斗模型(模型, nil, 锦衣名称, 武器类型)
			if 锦衣名称 and string.find(锦衣名称,"斗战胜佛") then
				允许武器 = false
			end
		end
		if 武器 ~= nil then
			if 武器.名称 == "龙鸣寒水" or 武器.名称 == "非攻" then
				zl = "弓弩1"
			else
				zl = 多开数据[多开数据.当前].__主控:取武器子类(武器.子类)
			end
		end
		local n = 取战斗模型(模型)
		if zl ~= 0 and zl ~= true then
			n = 取战斗模型(模型, zl)
		end
		if lssj and lssj[1] then
			for i = 1, #动作 do
				if lssj[action_types[动作[i]]] then
					self.动画[动作[i]] = __res:取动画2(__res:取地址('shape/mx/zj/', lssj[action_types[动作[i]]]))
					if 动作[i] == "待战" or 动作[i] == "返回" then
						self.动画[动作[i]]:置循环(true)
					end
				else
					self.动画[动作[i]] = __res:取动画2(__res:取地址('shape/mx/', n[action_type[动作[i]]]))
					if 动作[i] == "待战" or 动作[i] == "返回" then
						self.动画[动作[i]]:置循环(true)
					end
				end
			end
		else
			for i = 1, #动作 do
				self.动画[动作[i]] = __res:取动画2(__res:取地址('shape/mx/', n[action_type[动作[i]]]))
				if 动作[i] == "待战" or 动作[i] == "返回" then
					self.动画[动作[i]]:置循环(true)
				end
			end
		end
		   if 施法特效1 and _施法表[施法特效1] then
			self.动画.施法_特效 = __res:取动画2(__res:取地址("shape/mx/",_施法表[施法特效1]))
			end
		local w = 取战斗模型(模型 .. "_身体")
		if w[1] ~= nil and w[2] ~= nil and w[3] ~= nil and w[4] ~= nil and w[6] ~= nil and w[7] ~= nil and w[8] ~= nil and w[9] ~= nil then
			self.身体 = {}
			self.身体["待战"] = __res:取动画2(__res:取地址('shape/mx/', w[6])):置循环(true)
			self.身体["跑去"] = __res:取动画2(__res:取地址('shape/mx/', w[8]))
			self.身体["防御"] = __res:取动画2(__res:取地址('shape/mx/', w[4]))
			self.身体["攻击"] = __res:取动画2(__res:取地址('shape/mx/', w[1]))
			self.身体["攻击2"] = __res:取动画2(__res:取地址('shape/mx/', w[2]))
			self.身体["挨打"] = __res:取动画2(__res:取地址('shape/mx/', w[9]))
			self.身体["返回"] = __res:取动画2(__res:取地址('shape/mx/', w[8])):置循环(true)
			if w[3] ~= 0 then
				self.身体["死亡"] = __res:取动画2(__res:取地址('shape/mx/', w[3]))
			end
			self.身体["施法"] = __res:取动画2(__res:取地址('shape/mx/', w[7]))
		end
		if 副武器 and 允许武器 then
			self.副武器 = {}
			local 副武器资源 = 取战斗模型(副武器.名称.."_"..模型)--动画资源:载入(副武器资源[10],"网易WDF动画",副武器资源[6])
			self.副武器.待战 = __res["取动画2"](__res, __res["取地址"](__res, "shape/mx/",副武器资源[6]))
			self.副武器.跑去 = __res["取动画2"](__res, __res["取地址"](__res, "shape/mx/", 副武器资源[8]))
			self.副武器.防御 = __res["取动画2"](__res, __res["取地址"](__res, "shape/mx/", 副武器资源[4]))
			self.副武器.攻击 = __res["取动画2"](__res, __res["取地址"](__res, "shape/mx/", 副武器资源[1]))
			self.副武器.攻击2 = __res["取动画2"](__res, __res["取地址"](__res, "shape/mx/", 副武器资源[2]))
			self.副武器.挨打 = __res["取动画2"](__res, __res["取地址"](__res, "shape/mx/", 副武器资源[9]))
			self.副武器.返回 = __res["取动画2"](__res, __res["取地址"](__res, "shape/mx/", 副武器资源[8]))
			self.副武器.施法 = __res["取动画2"](__res, __res["取地址"](__res, "shape/mx/", 副武器资源[7]))
			self.副武器.静立 = __res["取动画2"](__res, __res["取地址"](__res, "shape/mx/", 副武器资源[6]))
			self.副武器.连击1 = __res["取动画2"](__res, __res["取地址"](__res, "shape/mx/", 副武器资源[11]))
			self.副武器.连击2 = __res["取动画2"](__res, __res["取地址"](__res, "shape/mx/", 副武器资源[12]))
			self.副武器.连击3 = __res["取动画2"](__res, __res["取地址"](__res, "shape/mx/", 副武器资源[13]))
		end
		if 武器 ~= nil and 武器.等级 ~= nil  and 允许武器 then
			local txzl = "1"
			if 武器.等级 >= 90 then
				txzl = "2"
			end
			local qsj = 模型特效库(模型 .. "攻击", zl .. txzl)
			if #qsj >= 2 then
				self.动作特效.攻击 = __res:取动画2(__res:取地址('shape/mx/', qsj[1]))
			end
			qsj = 模型特效库(模型 .. "攻击2", zl .. txzl)
			if #qsj >= 2 then
				self.动作特效.攻击2 = __res:取动画2(__res:取地址('shape/mx/', qsj[1]))
			end
			qsj = 模型特效库(模型 .. "施法", zl .. txzl)
			if #qsj >= 2 then
				self.动作特效.施法 = __res:取动画2(__res:取地址('shape/mx/', qsj[1]))
			end
		end
		if self.炫彩 then
			-- self.置炫彩调色(self)
		elseif self.染色方案 and (not 锦衣 or not 锦衣[1]) then
			self.置调色(self)
		end
		if 武器 ~= nil and 允许武器 then
			self.武器 = {}
			local m = 多开数据[多开数据.当前].__主控:取武器附加名称(武器.子类, 武器.等级 or 武器.等级, 武器.名称)
			local w = 取战斗模型(m .. "_" .. 模型)
			self.音效模型 = 模型 .. "_" .. zl
			if zl == "弓弩" or zl == "弓弩1" then
				self.攻击方式 = 1
			end
			if w[10] ~= nil then
				self.武器.待战 = __res:取动画2(__res:取地址('shape/mx/', w[6])):置循环(true)
				self.武器.跑去 = __res:取动画2(__res:取地址('shape/mx/', w[8]))
				self.武器.防御 = __res:取动画2(__res:取地址('shape/mx/', w[4]))
				self.武器.攻击 = __res:取动画2(__res:取地址('shape/mx/', w[1]))
				self.武器.攻击2 = __res:取动画2(__res:取地址('shape/mx/', w[2]))
				pysa = math.floor(self.武器.攻击.宽度 / 20)
				if 模型 == "鬼潇潇" then
					pysa = -15
				elseif 模型 == "偃无师" or 模型 == "桃夭夭" or 模型 == "狐美人" then
					pysa = 2
					pysy = 18
				elseif 模型 == "玄彩娥" then
					if zl == "飘带" then
						pysa = -2
					else
						pysa = 18
					end
				elseif 模型 == "舞天姬" then
					pysa = 9
				elseif 模型 == "虎头怪" or 模型 == "真陀护法" then
					pysa = 15
				elseif 模型 == "神天兵" or 模型 == "骨精灵" then
					if zl == "枪矛" then
						pysa = 40
					else
						pysa = 20
					end
				elseif 模型 == "巨魔王" then
					pysa = 12
				elseif 模型 == "杀破狼" or 模型 == "巫蛮儿" then
					pysa = 7
				elseif 模型 == "逍遥生" then
					pysa = 15
					pysy = 32
				elseif 模型 == "剑侠客" then
					if zl == "刀" then
						pysa = 60
						pysy = 12
					else
						pysa = 25
						self.终结帧 = 1
					end
				elseif 模型 == "英女侠" then
					pysa = -5
				elseif 模型 == "飞燕女" then
					pysa = 25
					pysy = 29
				elseif 模型 == "吸血鬼" then
					pysa = -15
				elseif 模型 == "天兵" then
					pysa = 6
					pysy = 10
				end
				self.武器.挨打 = __res:取动画2(__res:取地址('shape/mx/', w[9]))
				self.武器.返回 = __res:取动画2(__res:取地址('shape/mx/', w[8])):置循环(true)
				if w[3] ~= 0 then
					self.武器.死亡 = __res:取动画2(__res:取地址('shape/mx/', w[3]))
				end
				self.武器.施法 = __res:取动画2(__res:取地址('shape/mx/', w[7]))
			end
			if 武器 and 武器.染色方案 then
				self.置调色(self)
			end
		end
	else
		local n = 取战斗模型(模型)
		if zl ~= 0 and zl ~= true then
			n = 取战斗模型(模型, zl)
		end
		-- self.信息 = 多开数据[当前 or self and self.当前].角色信息
		self.行为 = "待战"
		self.状态行为 = "待战"
		self.动画 = {}
		self.动作特效 = {}
		for i = 1, #动作 do
			self.动画[动作[i]] = __res:取动画2(__res:取地址('shape/mx/', n[action_type[动作[i]]]))
			if 动作[i] == "待战" or 动作[i] == "返回" then
				self.动画[动作[i]]:置循环(true)
			end
		end
		self.动画.召唤兽 = true
		local w = 取战斗模型(模型 .. "_身体")
		if w[1] ~= nil and w[2] ~= nil and w[3] ~= nil and w[4] ~= nil and w[6] ~= nil and w[7] ~= nil and w[8] ~= nil and w[9] ~= nil then
			self.身体 = {}
			self.身体["待战"] = __res:取动画2(__res:取地址('shape/mx/', w[6])):置循环(true)
			self.身体["跑去"] = __res:取动画2(__res:取地址('shape/mx/', w[8]))
			self.身体["防御"] = __res:取动画2(__res:取地址('shape/mx/', w[4]))
			self.身体["攻击"] = __res:取动画2(__res:取地址('shape/mx/', w[1]))
			self.身体["攻击2"] = __res:取动画2(__res:取地址('shape/mx/', w[2]))
			self.身体["挨打"] = __res:取动画2(__res:取地址('shape/mx/', w[9]))
			self.身体["返回"] = __res:取动画2(__res:取地址('shape/mx/', w[8])):置循环(true)
			if w[3] ~= 0 then
				self.身体["死亡"] = __res:取动画2(__res:取地址('shape/mx/', w[3]))
			end
			self.身体["施法"] = __res:取动画2(__res:取地址('shape/mx/', w[7]))
		end
		local w = 取战斗模型(模型 .. "_装饰")
		if w[1] ~= nil and w[2] ~= nil and w[3] ~= nil and w[4] ~= nil and w[6] ~= nil and w[7] ~= nil and w[8] ~= nil and w[9] ~= nil then
			self.怪物饰品 = {}
			self.怪物饰品["待战"] = __res:取动画2(__res:取地址('shape/mx/', w[6])):置循环(true)
			self.怪物饰品["跑去"] = __res:取动画2(__res:取地址('shape/mx/', w[8]))
			self.怪物饰品["防御"] = __res:取动画2(__res:取地址('shape/mx/', w[4]))
			self.怪物饰品["攻击"] = __res:取动画2(__res:取地址('shape/mx/', w[1]))
			self.怪物饰品["攻击2"] = __res:取动画2(__res:取地址('shape/mx/', w[2]))
			self.怪物饰品["挨打"] = __res:取动画2(__res:取地址('shape/mx/', w[9]))
			self.怪物饰品["返回"] = __res:取动画2(__res:取地址('shape/mx/', w[8])):置循环(true)
			if w[3] ~= 0 then
				self.怪物饰品["死亡"] = __res:取动画2(__res:取地址('shape/mx/', w[3]))
			end
			self.怪物饰品["施法"] = __res:取动画2(__res:取地址('shape/mx/', w[7]))
		end
		local qsj = 模型特效库(模型 .. "攻击")
		if #qsj > 0 then
			self.动作特效.攻击 = __res:取动画2(__res:取地址('shape/mx/', qsj[1]))
		end
		qsj = 模型特效库(模型 .. "攻击2")
		if #qsj > 0 then
			self.动作特效.攻击2 = __res:取动画2(__res:取地址('shape/mx/', qsj[1]))
		end
		qsj = 模型特效库(模型 .. "施法")
		if #qsj > 0 then
			self.动作特效.施法 = __res:取动画2(__res:取地址('shape/mx/', qsj[1]))
		end
		--变异=true
		if 变身 == nil then
			if 饰品 then
				local w = 取战斗模型(模型 .. "_饰品")
				if w[1] ~= nil and w[2] ~= nil and w[3] ~= nil and w[4] ~= nil and w[6] ~= nil and w[7] ~= nil and w[8] ~= nil and w[9] ~= nil then
					self.怪物饰品 = {}
					self.怪物饰品["待战"] = __res:取动画2(__res:取地址('shape/mx/', w[6])):置循环(true)
					self.怪物饰品["跑去"] = __res:取动画2(__res:取地址('shape/mx/', w[8]))
					self.怪物饰品["防御"] = __res:取动画2(__res:取地址('shape/mx/', w[4]))
					self.怪物饰品["攻击"] = __res:取动画2(__res:取地址('shape/mx/', w[1]))
					self.怪物饰品["攻击2"] = __res:取动画2(__res:取地址('shape/mx/', w[2]))
					self.怪物饰品["挨打"] = __res:取动画2(__res:取地址('shape/mx/', w[9]))
					self.怪物饰品["返回"] = __res:取动画2(__res:取地址('shape/mx/', w[8])):置循环(true)
					if w[3] ~= 0 then
						self.怪物饰品["死亡"] = __res:取动画2(__res:取地址('shape/mx/', w[3]))
					end
					self.怪物饰品["施法"] = __res:取动画2(__res:取地址('shape/mx/', w[7]))
					-- if 饰品颜色 ~= nil then
					-- 	self.怪物饰品["待战"]:置颜色(饰品颜色,-1)
					-- 	self.怪物饰品["跑去"]:置颜色(饰品颜色,-1)
					-- 	self.怪物饰品["防御"]:置颜色(饰品颜色,-1)
					-- 	self.怪物饰品["攻击"]:置颜色(饰品颜色,-1)
					-- 	self.怪物饰品["攻击2"]:置颜色(饰品颜色,-1)
					-- 	self.怪物饰品["挨打"]:置颜色(饰品颜色,-1)
					-- 	self.怪物饰品["返回"]:置颜色(饰品颜色,-1)
					-- 	self.怪物饰品["死亡"]:置颜色(饰品颜色,-1)
					-- 	self.怪物饰品["施法"]:置颜色(饰品颜色,-1)
					-- 	--self.怪物饰品["行走"]:置颜色(饰品颜色,-1)
					-- end
				end
			else
				local w = 取战斗模型(模型 .. "_装饰")
				if w[1] ~= nil and w[2] ~= nil and w[3] ~= nil and w[4] ~= nil and w[6] ~= nil and w[7] ~= nil and w[8] ~= nil and w[9] ~= nil then
					self.怪物饰品 = {}
					self.怪物饰品["待战"] = __res:取动画2(__res:取地址('shape/mx/', w[6])):置循环(true)
					self.怪物饰品["跑去"] = __res:取动画2(__res:取地址('shape/mx/', w[8]))
					self.怪物饰品["防御"] = __res:取动画2(__res:取地址('shape/mx/', w[4]))
					self.怪物饰品["攻击"] = __res:取动画2(__res:取地址('shape/mx/', w[1]))
					self.怪物饰品["攻击2"] = __res:取动画2(__res:取地址('shape/mx/', w[2]))
					self.怪物饰品["挨打"] = __res:取动画2(__res:取地址('shape/mx/', w[9]))
					self.怪物饰品["返回"] = __res:取动画2(__res:取地址('shape/mx/', w[8])):置循环(true)
					if w[3] ~= 0 then
						self.怪物饰品["死亡"] = __res:取动画2(__res:取地址('shape/mx/', w[3]))
					end
					self.怪物饰品["施法"] = __res:取动画2(__res:取地址('shape/mx/', w[7]))
				end
			end
			if self.炫彩 then
				-- self.置炫彩调色(self)
			elseif self.染色方案 then
				self.boby_wpal = __res:dewpal(self.染色方案)
				if self.染色组 then
					for i, v in ipairs(self.染色组) do
						self.染色组[i] = self.染色组[i]
					end
				end
				self.置调色(self)
			elseif 变异 and 染色信息[模型] then
				self.boby_wpal = __res:dewpal(染色信息[模型].id)
				self.染色组 = {}
				self.染色方案 = 染色信息[模型].id 
				for i,v in ipairs(染色信息[模型].方案) do
					self.染色组[i] = v
				end
				self.置调色(self)
			end
		end
	end
	self.初始化结束 = true
end

function 战斗动画:置调色()
	for i = 1, 3 do
		if not self.染色组[i] then
			self.染色组[i] = 0
		end
	end
	for i, v in ipairs(动作) do
		if self.动画[v] then
			__res:置染色(self.动画[v], self.染色方案, self.染色组[1], self.染色组[2], self.染色组[3])
		end
		if self.身体 and self.身体[v] then
			__res:置染色(self.身体[v], self.染色方案, self.染色组[1], self.染色组[2], self.染色组[3])
		end
		if self.武器 and self.武器[v] and self.武器类型.染色方案 then
			__res:置染色(self.武器[v], self.武器类型.染色方案, self.武器类型.染色组[1], self.武器类型.染色组[2])
		end
	end
end

function 战斗动画:置方向(方向, 动作)
	if self.动画[动作] then
	self.动画[动作]:置方向(方向)
	self.动画[动作]:置首帧():恢复()
end
if self.动画[动作.."_特效"] then
	self.动画[动作.."_特效"]:置方向(方向)
	self.动画[动作.."_特效"]:置首帧():恢复()
end
	if self.动作特效[动作] ~= nil then
		self.动作特效[动作]:置方向(方向)
		self.动作特效[动作]:置首帧():恢复()
	end
	if self.武器 ~= nil and self.武器[动作] ~= nil then
		self.武器[动作]:置方向(方向)
		self.武器[动作]:置首帧():恢复()
	end
	if self.副武器 and self.副武器[动作] then
        self.副武器[动作]:置方向(方向)
        self.副武器[动作]:置首帧():恢复()
    end
	if self.身体 ~= nil and self.身体[动作] ~= nil then
		self.身体[动作]:置方向(方向)
		self.身体[动作]:置首帧():恢复()
	end
	if self.怪物饰品 ~= nil and self.怪物饰品[动作] ~= nil then
		self.怪物饰品[动作]:置方向(方向)
		self.怪物饰品[动作]:置首帧():恢复()
	end
end
function 战斗动画:临时染色(染色, 编号)
    local aa = {"待战","攻击","攻击2","挨打","连击1","连击2","连击3"}
    for i = 1, #aa do
        self:置颜色(0xff000000, aa[i])
    end
end
function 战斗动画:置颜色(颜色,动作)
    if self.动画[动作] then
        self.动画[动作]:置颜色(颜色)
    end

    if self.武器~=nil and self.武器[动作]~=nil  then
        self.武器[动作]:置颜色(颜色)
    end
    if self.副武器 and self.副武器[动作] then
        self.副武器[动作]:置颜色(颜色)
    end
    if self.身体~=nil and self.身体[动作]~=nil  then
        self.身体[动作]:置颜色(颜色)
    end
    if self.怪物饰品~=nil and self.怪物饰品[动作]~=nil  then
        self.怪物饰品[动作]:置颜色(颜色)
    end
end
function 战斗动画:还原染色()
    local aa = {"待战","攻击","攻击2","挨打","连击1","连击2","连击3"}
    for i = 1, #aa do
        if self.动画[aa[i]] then
            self.动画[aa[i]]:置颜色(0xffffffff)
        end

        if self.武器~=nil and self.武器[aa[i]]~=nil then
            self.武器[aa[i]]:置颜色(0xffffffff)
        end
        if self.副武器~=nil and self.副武器[aa[i]]~=nil then
            self.副武器[aa[i]]:置颜色(0xffffffff)
        end
        if self.身体~=nil and self.身体[aa[i]]~=nil then
            self.身体[aa[i]]:置颜色(0xffffffff)
        end
        if self.怪物饰品~=nil and self.怪物饰品[aa[i]]~=nil then
            self.怪物饰品[aa[i]]:置颜色(0xffffffff)
        end
    end
end
function 战斗动画:置帧率(动作, 帧率)
	if self.动画[动作] then
	self.动画[动作]:置帧率(帧率)
	end
	if self.动画[动作.."_特效"] then
		self.动画[动作.."_特效"]:置帧率(帧率)
	end
	if self.动作特效[动作] ~= nil then
		self.动作特效[动作]:置帧率(帧率)
	end
	if self.武器 ~= nil and self.武器[动作] ~= nil then
		self.武器[动作]:置帧率(帧率)
	end
	if self.副武器 and self.副武器[动作] then
        self.副武器[动作]:置帧率(帧率)
    end
	if self.身体 ~= nil and self.身体[动作] ~= nil then
		self.身体[动作]:置帧率(帧率)
	end
	if self.怪物饰品 ~= nil and self.怪物饰品[动作] ~= nil then
		self.怪物饰品[动作]:置帧率(帧率)
	end
end

function 战斗动画:取当前帧(动作)
	if self.动画[动作] == nil then return 1 end
	return self.动画[动作]:取当前帧()
end

function 战斗动画:取结束帧(动作)
	if self.动画[动作] == nil then return 1 end
	return self.动画[动作]:取帧数()
end

function 战斗动画:取开始帧(动作)
	if self.动画[动作] == nil then return 1 end
	return self.动画[动作]:取开始帧()
end

function 战斗动画:检查点(x, y, 动作)
	return self.动画[动作]:检查点(x, y)
end

function 战斗动画:是否播放(动作)
	return self.动画[动作] and self.动画[动作]:是否播放()
end

function 战斗动画:更新(dt, 动作)
	
	if self.动画[动作] ~= nil then
		self.动画[动作]:更新(dt)
		if self.动画[动作.."_特效"] then
			self.动画[动作.."_特效"]:更新(dt)
		end
		if self.动作特效[动作] ~= nil then
			self.动作特效[动作]:更新(dt)
		end
		if self.武器 ~= nil and self.武器[动作] ~= nil then
			self.武器[动作]:更新(dt)
		end
		if self.副武器 and self.副武器[动作] then
            self.副武器[动作]:更新(dt)
        end
		if self.身体 ~= nil and self.身体[动作] ~= nil then
			self.身体[动作]:更新(dt)
		end
		if self.怪物饰品 ~= nil and self.怪物饰品[动作] ~= nil then
			self.怪物饰品[动作]:更新(dt)
		end
	end
end

function 战斗动画:显示(x, y, 动作)
	多开数据[self.当前].__主显.影子:显示(x, y)
	if self.动画[动作] ~= nil then
	self.动画[动作]:显示(x, y)
	end
	if self.动画[动作.."_特效"] then
		self.动画[动作.."_特效"]:显示(x, y)
	end
	if self.动作特效[动作] ~= nil then
		self.动作特效[动作]:显示(x, y)
	end
	if self.武器 ~= nil and self.武器[动作] ~= nil then
		self.武器[动作]:显示(x, y)
	end
	if self.副武器 and self.副武器[动作] then
        self.副武器[动作]:显示(x,y)
    end
	if self.身体 ~= nil and self.身体[动作] ~= nil then
		self.身体[动作]:显示(x, y)
	end
	if self.怪物饰品 ~= nil and self.怪物饰品[动作] ~= nil then
		self.怪物饰品[动作]:显示(x, y)
	end
end

return 战斗动画
